Em muốn viết 1 chương trình delay dùm timer ma thời gian delay phu thuộc vào 1 port bất kỳ chẳng hạn là port p0 vidu port p0=255 thì thời gian delay sẽ là 255ms
Thông báo
Collapse
No announcement yet.
Xin giu`p đỡ về timer và ngắt
Collapse
X
-
Nguyên văn bởi sdtuan Xem bài viếtEm muốn viết 1 chương trình delay dùm timer ma thời gian delay phu thuộc vào 1 port bất kỳ chẳng hạn là port p0 vidu port p0=255 thì thời gian delay sẽ là 255ms
bạn có thể nạp vào tl0 như sau
mov th0,#ffh
mov TL0,-p0
-
sory mình nhầm
bạn viết như sau
.............
.................
....................
.................
MOV TH0,#HIGH(-1000)
MOV TL0,#LOW(-1000)
mov r0,p0
setb tr0
here:sjmp here
ngat_t0:
CLR TR0
MOV TH0,#HIGH(-1000)
MOV TL0,#LOW(-1000)
SETB TR0
;*****
DEC r0
CJNE r0,#255,KT
công việc
mov r0,p0
kt:
ret
Comment
-
MOV TH0,#HIGH(-1000)
MOV TL0,#LOW(-1000)
mov r0,p0
setb tr0
here:sjmp here
Đây là phần khởi tạo ngắt. Có nghĩa là cứ sau 1ms thì 1 ngắt timer sẽ dc kich hoạt.
ngat_t0:
CLR TR0
MOV TH0,#HIGH(-1000)
MOV TL0,#LOW(-1000)
SETB TR0
;*****
DEC r0
CJNE r0,#255,KT
;công việc
mov r0,p0
kt:
ret
Đây là chương trình phục vụ ngắt timer0.Sau khi ngắt dc kich hoạt thì chương trình phục vụ ngắt dc thực hiện.Chương trình này sẽ giảm r0 và so sánh với 0(tức là 255) nếu khác thì sẽ nhảy đến kt và trở lại chương trình chính, công việc này tiếp tục đến khi nào r0=0 va như vậy thì sẽ delay =r0*1ms .Khi r0=0 thì nó sẽ cập nhập giá trị của P0.
Comment
-
LJMP MAIN
ORG 000BH
LJMP NGAT_T0
MAIN:
MOV TMOD,#11H
MOV TH0,#HIGH(-1000)
MOV TH0,#LOW(-1000)
MOV R0,P0
SETB EA
SETB ET0
SETB TR0
NGAT_T0:
DEC R0
CJNE R0,#255,KT
MOV R0,P0
****** CONG VIEC*****
MOV R0,P0
RETI
kt:
vây nhãn kt mình có phải làm ji để nó way lại chương trình chính
Comment
-
em chưa hiểu 2 lệnh này lắm:
MOV TH0,#HIGH(-1000)
MOV TH0,#LOW(-1000)
nó dc sử dụng khi nào,max là bao nhiêu?
mà mình cứ phải nạp số âm vào ah? dùng khai báo như thế này trong trường hơp như thế nao?
mạo mụi hỏi mong ai biết trả lơi cho em .vì em chưa dùng cái này bao giờ
Comment
-
Nguyên văn bởi dung h Xem bài viếtem chưa hiểu 2 lệnh này lắm:
MOV TH0,#HIGH(-1000)
MOV Tl0,#LOW(-1000)
nó dc sử dụng khi nào,max là bao nhiêu?
mà mình cứ phải nạp số âm vào ah? dùng khai báo như thế này trong trường hơp như thế nao?
mạo mụi hỏi mong ai biết trả lơi cho em .vì em chưa dùng cái này bao giờ
MOV TH0,#HIGH(65536-1000)
MOV TL0,#LOW(65536-1000)
tức là nạp vào timer giá trị = 65536 - 1000 (= 1ms)
byte cao đưa vào TH0 byte thấp đưa vào TL0
Comment
-
í, cái này trong giáo trình có giải thích mà.
nói nôm na như vầy nhé, giả sử cài TIMER là 8bit, nó sẽ đếm từ 0->255, vậy bạn muốn delay 10uS thì làm sao, bạn cài cho TIMER giá trị ban đầu là 245, vậy sao 10uS nó sẽ tràn về 0. giá trị 245 ~ (-10) đó (8bit). người ta dùng giá trị âm cho dễ nhớ hơn.
Comment
-
em chưa hiểu 2 lệnh này lắm:
MOV TH0,#HIGH(-1000)
MOV TH0,#LOW(-1000)
nó dc sử dụng khi nào,max là bao nhiêu?
mà mình cứ phải nạp số âm vào ah? dùng khai báo như thế này trong trường hơp như thế nao?
mạo mụi hỏi mong ai biết trả lơi cho em .vì em chưa dùng cái này bao giờFor a better world
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi mèomướpDạ chú chủ thớt có thời gian và đam mê thì cứ từ từ ngâm cứu đi ạ đừng nghe chú Chú bq... dọa mà sợ ạ. Cái nguồn nhìn cũng lởm có khi hông bằng cái máy hàn tàu của chị hàng xóm hôm nọ tháo ra sửa với chú thợ thông ống nước suốt đêm mới xong. Chú ý an toàn xíu là được ạ...
-
Channel: Điện tử công suất
hôm nay, 15:40 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi bqvietBộ nguồn xung ở tầm công suất 2700W này, gần 3 ký, không bao giờ đơn giản để mà sửa ngay cả đối với người có kinh nghiệm chứ đừng nói người không chuyên. Đám linh kiện công suất không tự nhiên cháy mà phải xuất phát từ nguyên nhân...
-
Channel: Điện tử công suất
Hôm qua, 22:09 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi mèomướpDạ chú kiểm tra đi ốt đầu vào, ra nữa ạ. Về phần kiểm tra dao động chú hỏi chị google ấy ạ, có nhìu cô chú đã hướng dẫn rồi ạ...
-
Channel: Điện tử công suất
Hôm qua, 16:53 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi Minhdai95mình đã kiểm tra phần công suất thấy hỏng cả 4 con IGBT mà mình muốn kiểm tra phần dao động và hồi tiếp khi chưa cấp điện cho mạch thì có cách nào không b, mình không phải dân trong nghề lên chưa có kinh nghiệm sửa. Cảm ơn b
-
Channel: Điện tử công suất
Hôm qua, 14:27 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi mèomướpDạ chú nhắm phần công suất dễ kiểm tra và hay hư hỏng nhất trước ạ. Rồi đến phần dao động nguồn, hồi tiếp...
-
Channel: Điện tử công suất
Hôm qua, 11:42 -
-
bởi Minhdai95mọi người đã ai sửa bộ nguồn này chưa ạ, cho e xin ít kinh nghiệm để sửa bộ nguồn. Em cảm ơn...
-
Channel: Điện tử công suất
Hôm qua, 11:22 -
-
Trả lời cho Thắc mắc về hạ áp cho adapter laptopbởi nhathung1101
-
Channel: Điện tử dành cho người mới bắt đầu
31-12-2024, 17:39 -
-
Comment on Thắc mắc về hạ áp cho adapter laptopbởi nguyendinhvan
-
Channel: Điện tử dành cho người mới bắt đầu
29-12-2024, 23:20 -
-
Trả lời cho Thắc mắc về hạ áp cho adapter laptopbởi nguyendinhvanPhải làm đúng quy chình thì mới được
Bươc 1 lấy cái nguồn điều chỉnh, set về đúng 12v, cấp cho đường out 19v như hình. Chú ý là phần đầu vào adaptor không cấp điện.
Bước 2 . Kiểm tra điện áp tại chân số 3 das001 có đúng...-
Channel: Điện tử dành cho người mới bắt đầu
29-12-2024, 23:20 -
-
Trả lời cho Thắc mắc về hạ áp cho adapter laptopbởi LamVoNhấp nháy có thể do chu kỳ hoạt động bị rút ngắn quá dẫn đến không đủ nguồn nuôi ic, bác thử tăng giá trị tụ nguồn phụ nuôi ic và giảm giá trị điện trở hạn dòng cho nó xem có cải thiện không....
-
Channel: Điện tử dành cho người mới bắt đầu
29-12-2024, 08:45 -
Comment